package com.bjsxt;
/**TCP通信介绍
 * 前边我们提到TCP协议是面向连接的协议，在通信时客户端与服务器端必须建立连接。在
 * 网络通信中，第一次主动发起通信的程序被称作客户端（Client）程序，简称客户端，
 * 而在第一次通信中等待连接的程序被称作服务端（Server）程序，简称服务器，一旦通
 * 信建立，则客户端和服务器端完全一样，没有本质的区别，因为客户端和服务器端，连接后
 * 可以相互发送消息*/
/*请求响应：
* Socket类：发送TCP消息。   作用：套接字起到端点作用，或者叫（程序与程序）计算机和计算机之间的信息交互
* SeverSocket类：创建服务端*/
/*单个套接字是一个端点，而一对套接字则构成一个双向通信信道（可以客户端向服务器端单向发送字节，
* 也可以客户端和服务器端双向链接），使非关联进程可以在本地或通过网络进行数据交换，
* 一旦建立套字接连接，数据即可在相同或不同的系统中双向或单向发送，直到其中一个端点关闭连接，套字与主机
* 地址和端口地址相关联。主机地址就是客户端或服务器程序所在的主机的IP地址。端口地址是指客户端或服务器程序
* 使用的主机的通信端口。
*    在客户端和服务器中，分别创建独立的Socket，并通过Socket的属性，将两个Socket进
* 行连接，这样，客户端和服务器通过套接字所建立的连接使用输入输出流进行通信。
*   TCP/IP套接字是最可靠的的双向流协议，使用TCP/IP可以发送任意数量的数据。
*   实际上，套接字只是计算机上已编号的端口。如果发送方和接收方计算机确定好端口，它们就可以通信*/

    /*A计算机上的TCP/IP软件向B计算机发送包含端口号的消息，B计算机的TCp/IP
    * 软件接收该，并进行检查，查看是否有它知道的程序正在该端口上接收消息，如果
    * 有，它就将该消息交给这个程序
    *   要想程序有效地运行，就必须有一个客户端和一个服务器
    * */
public class TcpTest00 {
    /*Socket的编程顺序
    * 1，创建服务器ServerSocket，在创建时， 定义ServerSocket的监听端口
    （这个端口接收客户发来的消息），。
    * 2，ServerSocket调用accept()方法，使之处于阻塞状态
    * 3，创建客户端Socket，并设置服务器的IP及端口。
    * 4，客户端发出连接请求，建立连接。
    * 5，分别取得服务器和客户端Socket的InputStream和OutputStream
    * 6，利用Socket和SererSocket 进行数据传输
    * 7，关闭流及Socket*/

}
